﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using BUS;
using DTO;

namespace AgriBank
{
    public partial class AgriBankForm : Form
    {
        TaiKhoanDTO tkDuocChon = new TaiKhoanDTO();
        KhachHangDTO khDuocChon = new KhachHangDTO();

        string recentUser;

        public AgriBankForm()
        {
            InitializeComponent();
        }

        private void pnl_MoTKTKKKH_Paint(object sender, PaintEventArgs e)
        {

        }

        private void menu_DN_DoiMatKhau_Click(object sender, EventArgs e)
        {
            tb_DMK_TenDN.Text = recentUser;

            pnl_DoiMatKhau.BringToFront();
        }
        //0712455
        private void menu_KH_Tim_Click(object sender, EventArgs e)
        {
            bt_TKKH_Tim.Enabled = false;
            dtgv_TKKH_DanhSach.Enabled = false;
            pnl_TimKH.BringToFront();
        }
        //0712455
        private void menu_TK_Tim_Click(object sender, EventArgs e)
        {
            bt_TKTK_Tim.Enabled = false;
            dtgv_TKTK_DanhSach.Enabled = false;
            pnl_TimTK.BringToFront();
        }
        //0712455
        private void menu_TK_Mo_KKH_Click(object sender, EventArgs e)
        {
            cb_MTKTKKKH_LoaiTienTe.DataSource = LoaiTienTeBUS.LayDanhSach();
            cb_MTKTKKKH_LoaiTienTe.DisplayMember = "TenLoaiTienTe";
            cb_MTKTKKKH_LoaiTienTe.SelectedIndex = -1;
            pnl_MoTKTKKKH.BringToFront();
        }
        //0712455
        private void menu_TK_Mo_CKH_Click(object sender, EventArgs e)
        {
            cb_MTKTKCKH_LoaiTienTe.DataSource = LoaiTienTeBUS.LayDanhSach();
            cb_MTKTKCKH_LoaiTienTe.DisplayMember = "TenLoaiTienTe";
            cb_MTKTKCKH_LoaiTienTe.SelectedIndex = -1;
            cb_MoTKTKCKH_KiHan.SelectedIndex = -1;
            pnl_MoTKTKCKH.BringToFront();
        }

        private void menu_TK_Dong_Click(object sender, EventArgs e)
        {
            pnl_DongTK.BringToFront();
        }

        private void menu_TK_PhongToa_Click(object sender, EventArgs e)
        {
            pnl_PhongToaTK.BringToFront();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            menu_HT_DangNhap.Enabled = true;
            menu_HT_ThoatDangNhap.Enabled = false;
            menu_HT_DoiMatKhau.Enabled = false;
            menu_HT_Thoat.Enabled = true;

            menu_KH_Tim.Enabled = false;

            menu_TK_Dong.Enabled = false;
            menu_TK_Mo.Enabled = false;
            menu_TK_PhongToa.Enabled = false;
            menu_TK_Tim.Enabled = false;

            menu_GD_ChuyenTien.Enabled = false;
            menu_GD_NapTien.Enabled = false;
            menu_GD_RutTien.Enabled = false;

            pnl_ManHinhChinh.BringToFront();
        }

        private void menu_GD_NapTien_Click(object sender, EventArgs e)
        {
            pnl_NapTien_Sub.BringToFront();
        }

        private void menu_GD_Click(object sender, EventArgs e)
        {

        }

        private void menu_GD_RutTien_Click(object sender, EventArgs e)
        {
            pnl_RutTien.BringToFront();
        }
        //0712455
        private void menu_GD_ChuyenTien_Click(object sender, EventArgs e)
        {
            dtgv_CT_DanhSach.Enabled = false;
            bt_CT_Chon.Enabled = false;
            bt_CT_Tim.Enabled = false;
            pnl_ChuyenTien.BringToFront();
        }

        //0712467
        private void bt_PTSub_TroLai_Click(object sender, EventArgs e)
        {
            pnl_PhongToaTK.BringToFront();
        }

        //0712467
        private void bt_PTSub_PhongToa_Click(object sender, EventArgs e)
        {
            PhongToaTKDTO ptDto = new PhongToaTKDTO();
            ptDto.SoTienPT = Double.Parse(tb_PTSub_SoTienPT.Text);
            ptDto.NgayBatDauPT = dtp_PTSub_TuNgay.Value;
            ptDto.NgayKetThucPT = dtp_PTSub_DenNgay.Value;

            TaiKhoanBUS.PhongToaTaiKhoan(tkDuocChon, ptDto, recentUser);
        }

        private void bt_PT_Xoa_Click(object sender, EventArgs e)
        {
            tb_PT_CMND.Text = "";
            tb_PT_HoTen.Text = "";
            tb_PT_MaTK.Text = "";
        }

        //0712467
        //MaTK hop le : gom 13 so
        private bool MaTKHopLe(string strMaTK)
        {
            if (strMaTK.Length == 13)
            {
                return true;
            }
            return false;
        }

        //0712467
        //CMND hop le : từ 9 -> 12 chu so
        private bool CMNDHopLe(string strCMND)
        {
            if (strCMND.Length >= 9 && strCMND.Length <= 12)
            {
                return true;
            }
            return false;
        }


        //0712467
        private bool KiemTraHopLeDuLieuNhapPanelPhongToa()
        {
            if ((tb_PT_CMND.Text == "") && (tb_PT_HoTen.Text == "") && (tb_PT_MaTK.Text == ""))
            {
                MessageBox.Show("Bạn phải gõ vào thông tin tìm kiếm");
                return false;
            }
            if (tb_DTK_MaTK.Text != "")
            {
                if (MaTKHopLe(tb_PT_MaTK.Text) == true)
                {
                    return true;
                }
                else
                {
                    MessageBox.Show("Mã tài khoản không hợp lệ");
                    return false;
                }
            }
            else
            {
                if (tb_PT_CMND.Text != "")
                {
                    if (CMNDHopLe(tb_PT_CMND.Text) == true)
                    {
                        return true;
                    }
                    else
                    {
                        MessageBox.Show("Số CMND không hợp lệ");
                        return false;
                    }
                }
            }
            return true;
        }
        //0712467
        private void bt_PT_Tim_Click(object sender, EventArgs e)
        {
            if (KiemTraHopLeDuLieuNhapPanelPhongToa() == true)
            {
                if (tb_PT_MaTK.Text != "")
                {
                    TaiKhoanDTO tkDto = TaiKhoanBUS.TimTaiKhoan(tb_PT_MaTK.Text.Trim());
                    List<TaiKhoanDTO> lst = new List<TaiKhoanDTO>();
                    lst.Add(tkDto);
                    dtgv_PT_DanhSach.DataSource = lst;

                }
                else
                {
                    TaiKhoanBUS tkBus = new TaiKhoanBUS();
                    KhachHangDTO khDto = new KhachHangDTO();

                    if (tb_PT_CMND.Text != "")
                    {
                        khDto.CMND = tb_PT_CMND.Text;
                    }
                    if (tb_PT_HoTen.Text != "")
                    {
                        khDto.HoTen = tb_PT_HoTen.Text;
                    }

                    List<KhachHangDTO> lstKH = KhachHangBUS.TimKhachHang(khDto);
                    dtgv_PT_DanhSach.DataSource = TaiKhoanBUS.TimDSTaiKhoan(lstKH);
                }
                //hien thong tin len datagridview
                if (dtgv_PT_DanhSach.DataSource != null)
                {
                    dtgv_PT_DanhSach.Columns["MaTK"].Visible = true;
                    dtgv_PT_DanhSach.Columns["MaLoaiTK"].Visible = false;
                    dtgv_PT_DanhSach.Columns["MaKH"].Visible = false;
                    dtgv_PT_DanhSach.Columns["NgayBatDau"].Visible = true;
                    dtgv_PT_DanhSach.Columns["NgayKetThuc"].Visible = true;
                    dtgv_PT_DanhSach.Columns["SoDuCo"].Visible = false;
                    dtgv_PT_DanhSach.Columns["SoDuNo"].Visible = false;
                    dtgv_PT_DanhSach.Columns["SoDu"].Visible = true;
                    dtgv_PT_DanhSach.Columns["TinhTrang"].Visible = true;
                    dtgv_PT_DanhSach.Columns["LoaiTienTe"].Visible = false ;
                    dtgv_PT_DanhSach.Columns["MaChiNhanh"].Visible = false;
                }
                else
                {
                    MessageBox.Show("Không tìm thấy tài khoản thỏa thông tin tìm kiếm");
                }
            }
        }

        //0712467
        private void tb_PT_MaTK_TextChanged(object sender, EventArgs e)
        {
            if (tb_PT_MaTK.Text != "")
            {
                tb_PT_CMND.Enabled = false;
                tb_PT_HoTen.Enabled = false;
            }
            else
            {
                tb_PT_CMND.Enabled = true;
                tb_PT_HoTen.Enabled = true;
            }
        }

        //0712467
        private void bt_PT_PhongToa_Click(object sender, EventArgs e)
        {

            if (dtgv_PT_DanhSach.SelectedRows == null)
            {
                MessageBox.Show("Bạn phải chọn tài khoản cần phong tỏa");
                return;
            }
            else
            {
                tkDuocChon.MaTK = dtgv_PT_DanhSach.SelectedRows[0].Cells[0].Value.ToString();
                tkDuocChon.MaLoaiTK = Int32.Parse(dtgv_PT_DanhSach.SelectedRows[0].Cells[1].Value.ToString());
                tb_PTSub_MaTK.Text = tkDuocChon.MaTK;
                
                LoaiTaiKhoanDTO ltkDto = new LoaiTaiKhoanDTO();
                ltkDto.MaLoaiTK = tkDuocChon.MaLoaiTK;
                //tb_PTSub_LoaiTK.Text = LoaiTaiKhoanBUS.TimTenLoaiTaiKhoan(ltkDto).TenLoaiTK;

                KhachHangDTO khDto = new KhachHangDTO();
                khDto.MaKH = Int32.Parse(dtgv_PT_DanhSach.SelectedRows[0].Cells[2].Value.ToString());
                khDuocChon = KhachHangBUS.LayKhachHang(khDto.MaKH );

                tb_PTSub_MaKH.Text = khDuocChon.MaKH.ToString();
                tb_PTSub_HoTen.Text = khDuocChon.HoTen;
                tb_PTSub_CMND.Text = khDuocChon.CMND;

                pnl_PhongToaTK_sub.BringToFront();
            }
        }

        //0712467
        private bool KiemTraHopLeDuLieuNhapPanelDongTaiKhoan()
        {
            if ((tb_DTK_CMND.Text == "") && (tb_DTK_HoTen.Text == "") && (tb_DTK_MaTK.Text == ""))
            {
                MessageBox.Show("Bạn phải gõ vào thông tin tìm kiếm");
                return false;
            }
            if (tb_DTK_MaTK.Text != "")
            {
                if (MaTKHopLe(tb_DTK_MaTK.Text) == true)
                {
                    return true;
                }
                else
                {
                    MessageBox.Show("Mã tài khoản không hợp lệ");
                    return false;
                }
            }
            else
            {
                if (tb_DTK_CMND.Text != "")
                {
                    if (CMNDHopLe(tb_DTK_CMND.Text) == true)
                    {
                        return true;
                    }
                    else
                    {
                        MessageBox.Show("Số CMND không hợp lệ");
                        return false;
                    }
                }
            }
            return true;
        }


        //0712467
        private void bt_DTK_Tim_Click(object sender, EventArgs e)
        {
            if (KiemTraHopLeDuLieuNhapPanelDongTaiKhoan() == true)
            {
                if (tb_DTK_MaTK.Text != "")
                {
                    TaiKhoanDTO tkDto = TaiKhoanBUS.TimTaiKhoan(tb_DTK_MaTK.Text.Trim());
                    List<TaiKhoanDTO> lst = new List<TaiKhoanDTO>();
                    lst.Add(tkDto);
                    dtgv_DTK_DanhSach.DataSource = tkDto;
                }
                else
                {
                    TaiKhoanBUS tkBus = new TaiKhoanBUS();
                    KhachHangDTO khDto = new KhachHangDTO();

                    if (tb_DTK_CMND.Text != "")
                    {
                        khDto.CMND = tb_DTK_CMND.Text;
                    }
                    if (tb_DTK_HoTen.Text != "")
                    {
                        khDto.HoTen = tb_DTK_HoTen.Text;
                    }

                    List<KhachHangDTO> lstKH = KhachHangBUS.TimKhachHang(khDto);
                    dtgv_DTK_DanhSach.DataSource = TaiKhoanBUS.TimDSTaiKhoan(lstKH);
                }
                //hien thong tin len datagridview
                dtgv_DTK_DanhSach.Columns["MaTK"].Visible = true;
                dtgv_DTK_DanhSach.Columns["MaLoaiTK"].Visible = false;
                dtgv_DTK_DanhSach.Columns["MaKH"].Visible = false;
                dtgv_DTK_DanhSach.Columns["NgayBatDau"].Visible = true;
                dtgv_DTK_DanhSach.Columns["NgayKetThuc"].Visible = true;
                dtgv_DTK_DanhSach.Columns["SoDuCo"].Visible = false;
                dtgv_DTK_DanhSach.Columns["SoDuNo"].Visible = false;
                dtgv_DTK_DanhSach.Columns["SoDu"].Visible = true;
                dtgv_DTK_DanhSach.Columns["TinhTrang"].Visible = true;
               dtgv_DTK_DanhSach.Columns["LoaiTienTe"].Visible = true;
                dtgv_DTK_DanhSach.Columns["LoaiTienTe"].Visible = false;
                dtgv_DTK_DanhSach.Columns["MaChiNhanh"].Visible = false;
            }
        }
        

        //0712467
        private void bt_DTK_Xoa_Click(object sender, EventArgs e)
        {
            tb_DTK_CMND.Text = "";
            tb_DTK_HoTen.Text = "";
            tb_DTK_MaTK.Text = "";
        }

        //0712467
        private void tb_DTK_MaTK_TextChanged(object sender, EventArgs e)
        {
            if (tb_DTK_MaTK.Text != "")
            {
                tb_DTK_CMND.Enabled = false;
                tb_DTK_HoTen.Enabled = false;
            }
            else
            {
                tb_DTK_CMND.Enabled = true;
                tb_DTK_HoTen.Enabled = true;
            }
        }

        //0712467
        private void bt_DTK_Dong_Click(object sender, EventArgs e)
        {
            tkDuocChon.MaTK = dtgv_DTK_DanhSach.SelectedRows[0].Cells[0].Value.ToString();
            tkDuocChon.LoaiTienTe = 0;
            tkDuocChon.MaChiNhanh = 0;
            tkDuocChon.MaKH = 0;
            tkDuocChon.MaLoaiTK = 0;
            tkDuocChon.NgayBatDau = new DateTime(1,1,1);
            tkDuocChon.NgayKetThuc = new DateTime(1,1,1);
            tkDuocChon.SoDu = 0;
            tkDuocChon.SoDuCo = 0;
            tkDuocChon.SoDuNo = 0;
            tkDuocChon.TinhTrang = "";

            TaiKhoanBUS.DongTaiKhoan(tkDuocChon,recentUser);

            MessageBox.Show("Đã đóng tài khoản được chọn");
        }

        //0712467
        private void bt_DMK_Luu_Click(object sender, EventArgs e)
        {
            UserNameDTO usDto = new UserNameDTO();
            usDto.UserName = tb_DMK_TenDN.Text;
            if (tb_DMK_MKMoi1.Text == tb_DMK_MKMoi2.Text)
            {
                if (UsernameBUS.LayPassword(usDto) == tb_DMK_MKCu.Text)
                {
                    usDto.Password = tb_DMK_MKMoi2.Text;
                    UsernameBUS.DoiMatKhau(usDto);
                    MessageBox.Show("Dổi mật khẩu thành công");
                }
            }
            else
            {
                MessageBox.Show("Nhập lại mật khẩu mới không đúng. Vui lòng nhập lại");
            }
        }

        //0712467
        private void bt_DMK_Thoat_Click(object sender, EventArgs e)
        {
            tb_DMK_MKCu.Text = "";
            tb_DMK_MKMoi1.Text = "";
            tb_DMK_MKMoi2.Text = "";
            tb_DMK_TenDN.Text = "";

            pnl_DoiMatKhau.SendToBack();
        }

        //0712467
        private void bt_DN_DangNhap_Click(object sender, EventArgs e)
        {
            if (tb_DN_TenDN.Text == "" || tb_DN_MatKhau.Text == "")
            {
                MessageBox.Show("Bạn phải nhập đầy đủ tên đăng nhập và mật khẩu");
                return;
            }
            UserNameDTO usDto = new UserNameDTO();
            usDto.UserName = tb_DN_TenDN.Text;

            if (UsernameBUS.LayPassword(usDto) == tb_DN_MatKhau.Text)
            {
                recentUser = tb_DN_TenDN.Text;

                menu_HT_DangNhap.Enabled = false;
                menu_HT_ThoatDangNhap.Enabled = true;
                menu_HT_DoiMatKhau.Enabled = true;
                menu_HT_Thoat.Enabled = true;

                menu_KH_Tim.Enabled = true;

                menu_TK_Dong.Enabled = true;
                menu_TK_Mo.Enabled = true;
                menu_TK_PhongToa.Enabled = true;
                menu_TK_Tim.Enabled = true;

                menu_GD_ChuyenTien.Enabled = true;
                menu_GD_NapTien.Enabled = true;
                menu_GD_RutTien.Enabled = true;

                pnl_DangNhapThanhCong.BringToFront();
                tb_DN_MatKhau.Text = "";
                tb_DN_TenDN.Text = "";
            }
            else
            {
                MessageBox.Show("Tên đăng nhập và mật khẩu không đúng! \nVui lòng nhập lại!Nếu bạn quên mật khẩu, vui lòng liên hệ quản trị hệ thống");
            }
        }

        //0712467
        private void menu_HT_Thoat_Click(object sender, EventArgs e)
        {
            this.Close();
        }

        private void menu_HT_DangNhap_Click(object sender, EventArgs e)
        {
            pnl_DangNhap.BringToFront();
        }

        //0712467
        private void menu_HT_ThoatDangNhap_Click(object sender, EventArgs e)
        {
            DialogResult result = MessageBox.Show("Bạn có chắc muốn thoát đăng nhập?", "Thoát đăng nhập", MessageBoxButtons.YesNo);
            if (result == DialogResult.Yes)
            {
                recentUser = "";
                menu_HT_DangNhap.Enabled = true;
                menu_HT_ThoatDangNhap.Enabled = false;
                menu_HT_DoiMatKhau.Enabled = false;
                menu_HT_Thoat.Enabled = true;

                menu_KH_Tim.Enabled = false;

                menu_TK_Dong.Enabled = false;
                menu_TK_Mo.Enabled = false;
                menu_TK_PhongToa.Enabled = false;
                menu_TK_Tim.Enabled = false;

                menu_GD_ChuyenTien.Enabled = false;
                menu_GD_NapTien.Enabled = false;
                menu_GD_RutTien.Enabled = false;
            }
            pnl_ManHinhChinh.BringToFront();
        }


  //Mở tài khoản đồng sở hữu

        //0712455
        private void tb_DSH_CSH_HoTen_TextChanged(object sender, EventArgs e)
        {
            if (tb_DSH_CSH_HoTen.TextLength > 0)
            {
                bt_DSH_Mo.Enabled = true;
            }
        }

        //0712455
        private void ResetControlMoTKDSH()
        {
            tb_DSH_CSH_HoTen.Text = "";
            tb_DSH_CSH_CMND.Text = "";
            tb_DSH_CSH_DiaChi.Text = "";
            tb_DSH_CSH_NgayCap.Text = "";
            tb_DSH_CSH_NoiCap.Text = "";
            tb_DSH_CSH_DienThoai.Text = "";

            tb_DSH_DSH_HoTen.Text = "";
            tb_DSH_DSH_CMND.Text = "";
            tb_DSH_DSH_DiaChi.Text = "";
            tb_DSH_DSH_NgayCap.Text = "";
            tb_DSH_DSH_NoiCap.Text = "";
            tb_DSH_DSH_DienThoai.Text = "";

            cb_MTKDSH_LoaiTienTe.SelectedIndex = -1;
        }
        //0712455
        private string KiemTraHopLeDuLieuNhapPanelMoTaiKhoanDSH()
        {
            string chuoi_loi = "";
            if (tb_DSH_CSH_HoTen.TextLength == 0 || tb_DSH_DSH_HoTen.TextLength == 0)
            {
                chuoi_loi += "Lỗi : Không có họ tên chủ tài khoản\n";
            }
            if (CMNDHopLe(tb_DSH_CSH_CMND.Text.Trim()) == false || CMNDHopLe(tb_DSH_DSH_CMND.Text.Trim()) == false)
            {
                chuoi_loi += "Lỗi: CMND phải có từ 9 đến 12 chữ số\n";
            }

            DateTime ngay;
            if ((DateTime.TryParse(tb_DSH_CSH_NgayCap.Text.Trim(),out ngay) == false) || (DateTime.TryParse(tb_DSH_DSH_NgayCap.Text.Trim(), out ngay) == false))
            {
                chuoi_loi += "Lỗi : Ngày cấp CMND dạng mm/dd/yyyy\n";
            }
            if (tb_DSH_CSH_DiaChi.TextLength == 0 || tb_DSH_CSH_NoiCap.TextLength == 0 ||
                        tb_DSH_DSH_DiaChi.TextLength == 0 || tb_DSH_DSH_NoiCap.TextLength == 0)
            {
                chuoi_loi += "Phải cung cấp đầy đủ thông tin về nơi cấp CMND và địa chỉ\n";
            }
            if (cb_MTKDSH_LoaiTienTe.SelectedIndex == -1)
            {
                chuoi_loi += "Phải chọn loại tiền tệ sử dụng cho tài khoản\n";
            }
            return chuoi_loi;
        }
        //0712455
        private void bt_DSH_Xoa_Click(object sender, EventArgs e)
        {
            ResetControlMoTKDSH();
        }
        //0712455
        private void MoTKDongSoHuu()
        {
            string chuoi_loi = KiemTraHopLeDuLieuNhapPanelMoTaiKhoanDSH();
            if (chuoi_loi == "")
            {
                KhachHangDTO ChuSoHuuDto = new KhachHangDTO();
                KhachHangDTO DongSoHuuDto = new KhachHangDTO();

                ChuSoHuuDto.HoTen = tb_DSH_CSH_HoTen.Text.Trim();
                ChuSoHuuDto.CMND = tb_DSH_CSH_CMND.Text.Trim();
                ChuSoHuuDto.NgayCapCMND = Convert.ToDateTime(tb_DSH_CSH_NgayCap.Text);
                ChuSoHuuDto.NoiCapCMND = tb_DSH_CSH_NoiCap.Text.Trim();
                ChuSoHuuDto.DiaChi = tb_DSH_CSH_DiaChi.Text.Trim();
                ChuSoHuuDto.SoDT = tb_DSH_CSH_DienThoai.Text.Trim();

                DongSoHuuDto.HoTen = tb_DSH_DSH_HoTen.Text.Trim();
                DongSoHuuDto.CMND = tb_DSH_DSH_CMND.Text.Trim();
                DongSoHuuDto.NgayCapCMND = Convert.ToDateTime(tb_DSH_DSH_NgayCap.Text);
                DongSoHuuDto.NoiCapCMND = tb_DSH_DSH_NoiCap.Text.Trim();
                DongSoHuuDto.DiaChi = tb_DSH_DSH_DiaChi.Text.Trim();
                DongSoHuuDto.SoDT = tb_DSH_DSH_DienThoai.Text.Trim();

                LoaiTienTeDTO loaiTTDto = new LoaiTienTeDTO();
                loaiTTDto = (LoaiTienTeDTO)cb_MTKTGTT_LoaiTienTe.SelectedItem;


                try
                {
                    MoTKDongSoHuuBUS.Them(ChuSoHuuDto, DongSoHuuDto, loaiTTDto);
                    MessageBox.Show("Đã mở tài khoản thành công");
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.Message);
                }
            }
            else
            {
                MessageBox.Show(chuoi_loi);
            }
        }
        //0712455
        private void bt_DSH_Mo_Click(object sender, EventArgs e)
        {
            MoTKDongSoHuu();
            ResetControlMoTKDSH();
        }
        //0712455
        private void menu_TK_Mo_DSH_Click(object sender, EventArgs e)
        {
            cb_MTKDSH_LoaiTienTe.DataSource = LoaiTienTeBUS.LayDanhSach();
            cb_MTKDSH_LoaiTienTe.DisplayMember = "TenLoaiTienTe";
            cb_MTKDSH_LoaiTienTe.SelectedIndex = -1;
            bt_DSH_Mo.Enabled = false;
            pnl_MoTKDSH.BringToFront();
        }

 // Chuyển tiền đi từ tài khoản
       //0712455
        private void ChuyenTienDenTKKhacNH()
        {  
            GiaoDichDTO gdDto = new GiaoDichDTO();
            PhieuChuyenTienDenTKKhacNHDTO ctienKhacNhDto = new PhieuChuyenTienDenTKKhacNHDTO();

            gdDto.MaTK = tb_CTSub_MaTKTu.Text.Trim();

            ctienKhacNhDto.MaTKNhan = tb_CTSub_MaTKDen.Text.Trim();
            ctienKhacNhDto.NganHangNhan = (int)((NganHangDTO)cb_CT_NganHang.SelectedItem).MaNganHang;
            ctienKhacNhDto.SoTien = Convert.ToDouble(tb_CTSub_SoTien.Text.Trim());
            try
            {
                double phiDV = 0.0;
                GiaoDichChuyenTienDenTKKhacNHBUS.ThemGiaoDich(gdDto, ctienKhacNhDto, recentUser, ref phiDV);
                string str = String.Format("Đã chuyển khoản thành công. Phí dịch vụ là : {0}", phiDV);
                MessageBox.Show(str);
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }


        //0712455
        private void ChuyenTienDenTKCungNH()
        {
            GiaoDichDTO gdDto = new GiaoDichDTO();
            PhieuChuyenTienDenTKCungNHDTO ctienCungNhDto = new PhieuChuyenTienDenTKCungNHDTO();

            gdDto.MaTK = tb_CTSub_MaTKTu.Text.Trim();
            ctienCungNhDto.MaTKNhan = tb_CTSub_MaTKDen.Text.Trim();
            ctienCungNhDto.MaChiNhanh = Int32.Parse(tb_CT_MaCNNhan.Text);
            ctienCungNhDto.SoTien = Convert.ToDouble(tb_CTSub_SoTien.Text.Trim());
            try
            {
                double phiDV = 0.0;
                GiaoDichChuyenTienDenTKCungNHNoBUS.ThemGiaoDich(gdDto, ctienCungNhDto, recentUser,ref phiDV);
                string str = String.Format("Đã chuyển khoản thành công. Phí dịch vụ là : {0}", phiDV);
                MessageBox.Show(str);
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }
        //0712455
        private void bt_CTSub_Chuyen_Click(object sender, EventArgs e)
        {
            string kt = kiemTraHopLePanelChuyenTienSub();
            if (kt != "")
            {
                MessageBox.Show(kt);
                return;
            }
            if (rb_CT_KhacNH.Checked == true)
            {
                ChuyenTienDenTKKhacNH();
            }
            else
            {
                ChuyenTienDenTKCungNH();
            }
        }

        //0712455

        private void ResetControlChuyenTien()
        {
            tb_CT_MaTK.Text = "";
            tb_CT_CMND.Text = "";
            tb_CT_HoTen.Text = "";
        }
        //0712455
        private void bt_CT_Xoa_Click(object sender, EventArgs e)
        {
            ResetControlChuyenTien();
        }
        //0712455
        private string kiemTraHopLeCTien()
        {
            string chuoi_loi = "";
            if (tb_CT_MaTK.TextLength == 0)
            {
                if (tb_CT_CMND.TextLength == 0)
                {
                    if (tb_CT_HoTen.TextLength == 0)
                    {
                        chuoi_loi += "phải nhập vào ít nhất một thông tin tìm kiếm \n";
                    }
                }
                else
                {
                    if (CMNDHopLe(tb_CT_CMND.Text.Trim()) == false)
                    {
                        chuoi_loi += "Lỗi: CMND phải có từ 9 đến 12 chữ số\n";
                    }
                }
            }
            else
            {
                if(MaTKHopLe(tb_CT_MaTK.Text.Trim()) == false)
                {
                    chuoi_loi += "Mã số tài khoản phải có 13 chữ số\n";
                }
            }

            return chuoi_loi;
        }

        //0712455
        private void bt_CT_Tim_Click(object sender, EventArgs e)
        {
            dtgv_CT_DanhSach.Enabled = true;
            string kt = kiemTraHopLeCTien();
            if (kt != "")
            {
                MessageBox.Show(kt);
                return;
            }

            try
            {
                List<TaiKhoanDTO> lstTaiKhoan = new List<TaiKhoanDTO>();
                if (tb_CT_MaTK.TextLength != 0)
                {
                    TaiKhoanDTO taiKhoanDto = new TaiKhoanDTO();
                    taiKhoanDto = TaiKhoanBUS.TimTaiKhoan(tb_CT_MaTK.Text.Trim());
                    lstTaiKhoan.Add(taiKhoanDto);                   
                }
                else
                {
                    KhachHangDTO khDto = new KhachHangDTO();
                    if (tb_CT_HoTen.TextLength != 0)
                    {
                        khDto.HoTen = tb_CT_HoTen.Text.Trim();
                    }
                    if (tb_CT_CMND.TextLength != 0)
                    {
                        khDto.CMND = tb_CT_CMND.Text.Trim();
                    }
                    List<KhachHangDTO> lstKH = KhachHangBUS.TimKhachHang(khDto);
                    lstTaiKhoan = TaiKhoanBUS.TimDSTaiKhoan(lstKH);
                }

                dtgv_CT_DanhSach.DataSource = lstTaiKhoan;

                dtgv_CT_DanhSach.Columns["MaTK"].Visible = true;
                dtgv_CT_DanhSach.Columns["MaLoaiTK"].Visible = false;
                dtgv_CT_DanhSach.Columns["MaKH"].Visible = false;
                dtgv_CT_DanhSach.Columns["NgayBatDau"].Visible = true;
                dtgv_CT_DanhSach.Columns["NgayKetThuc"].Visible = true;
                dtgv_CT_DanhSach.Columns["SoDuCo"].Visible = false;
                dtgv_CT_DanhSach.Columns["SoDuNo"].Visible = false;
                dtgv_CT_DanhSach.Columns["SoDu"].Visible = true;
                dtgv_CT_DanhSach.Columns["TinhTrang"].Visible = true;
                dtgv_CT_DanhSach.Columns["LoaiTienTe"].Visible = true;
                dtgv_CT_DanhSach.Columns["MaChiNhanh"].Visible = false;
                dtgv_CT_DanhSach.AutoResizeColumns();

            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }

        }

        //0712455
        private void dtgv_CT_DanhSach_MouseClick(object sender, MouseEventArgs e)
        {
            bt_CT_Chon.Enabled = true;
        }

        //0712455
        private void bt_CT_Chon_Click(object sender, EventArgs e)
        {
            DataGridViewRow row = dtgv_CT_DanhSach.CurrentRow;
            int MaKH = (int)row.Cells["MaKH"].Value;
            KhachHangDTO khDto = KhachHangBUS.LayKhachHang(MaKH);
            tb_CTSub_HoTenTu.Text = khDto.HoTen;
            tb_CTSub_CMND.Text = khDto.CMND;
            cb_CT_NganHang.Enabled = false;
            cb_CT_NganHang.DataSource = NganHangBUS.LayDanhSach();
            cb_CT_NganHang.DisplayMember = "TenNganHang";
            cb_CT_NganHang.SelectedIndex = -1;
            tb_CTSub_MaTKTu.Text = row.Cells["MaTK"].Value.ToString();
            grpDenTK.Enabled = false;
            tb_CT_MaCNNhan.Enabled = false;
            pnl_ChuyenTien_Sub.BringToFront();
        }
        //0712455
        private void rb_CT_KhacNH_CheckedChanged(object sender, EventArgs e)
        {
            if (rb_CT_KhacNH.Checked == true)
            {
                cb_CT_NganHang.Enabled = true;
                grpDenTK.Enabled = false;
            }
            else
            {
                cb_CT_NganHang.Enabled = false;
                cb_CT_NganHang.SelectedIndex = -1;
            }
        }
        //0712455
        private void rb_CT_TrongNHNo_CheckedChanged(object sender, EventArgs e)
        {
            if (rb_CT_TrongNHNo.Checked == true)
            {
                tb_CT_MaCNNhan.Enabled = true;
            }
            else
            {
                tb_CT_MaCNNhan.Enabled = false;
                tb_CT_MaCNNhan.Text = "";
            }
        }
        //0712455
        private void cb_CT_NganHang_SelectedIndexChanged(object sender, EventArgs e)
        {
            if (cb_CT_NganHang.SelectedIndex != -1)
            {
                grpDenTK.Enabled = true;
            }
        }

        //0712455

        private string kiemTraHopLePanelChuyenTienSub()
        {
            string chuoi_loi = "";
            int MaCNNhan = 0;
            if (rb_CT_TrongNHNo.Checked == true && Int32.TryParse(tb_CT_MaCNNhan.Text.Trim(), out MaCNNhan) == false)
            {
                chuoi_loi += "Mã chi nhánh thụ hưởng phải là số nguyên\n";
            }
            if (tb_CTSub_HoTenDen.TextLength == 0)
            {
                chuoi_loi += "Phải có họ tên của chủ tài khoản nhận\n";
            }
            if (tb_CTSub_MaTKDen.TextLength == 0)
            {
                chuoi_loi += "Phải có mã tài khoản nhận tiền\n";
            }
            if ((rb_CT_TrongNHNo.Checked == true) && (MaTKHopLe(tb_CTSub_MaTKDen.Text.Trim()) == false))
            {
                chuoi_loi += "Mã số tài khoản nhận phải có 13 chữ số\n";
            }
            if (tb_CTSub_SoTien.TextLength == 0)
            {
                chuoi_loi += "Phải có số tiền cần chuyển đi\n";
            }
            double sotien;
            if (Double.TryParse(tb_CTSub_SoTien.Text.Trim(), out sotien) == false)
            {
                chuoi_loi += "Số tiền chuyển đi phải là số thực\n";
            }
            return chuoi_loi;
        }

        //0712455
        private void tb_CT_MaCNNhan_TextChanged(object sender, EventArgs e)
        {
            if (tb_CT_MaCNNhan.TextLength > 0)
            {
                grpDenTK.Enabled = true;
            }
        }
        //0712455
        private void tb_CT_MaTK_TextChanged(object sender, EventArgs e)
        {
            if (tb_CT_MaTK.TextLength > 0)
            {
                bt_CT_Tim.Enabled = true;
                tb_CT_CMND.Enabled = false;
                tb_CT_HoTen.Enabled = false;
            }
            else
            {
                if (tb_CT_MaTK.TextLength == 0 && tb_CT_HoTen.TextLength == 0 && tb_CT_CMND.TextLength == 0)
                {
                    bt_CT_Tim.Enabled = false;
                }
            }
        }
        //0712455
        private void tb_CT_HoTen_TextChanged(object sender, EventArgs e)
        {
            if (tb_CT_HoTen.TextLength > 0)
            {
                bt_CT_Tim.Enabled = true;
                tb_CT_MaTK.Enabled = false;
            }
            else
            {
                if (tb_CT_MaTK.TextLength == 0 && tb_CT_HoTen.TextLength == 0 && tb_CT_CMND.TextLength == 0)
                {
                    bt_CT_Tim.Enabled = false;
                }
            }
        }
        //0712455
        private void tb_CT_CMND_TextChanged(object sender, EventArgs e)
        {
            if (tb_CT_CMND.TextLength > 0)
            {
                bt_CT_Tim.Enabled = true;
                tb_CT_MaTK.Enabled = false;
            }
            else
            {
                if (tb_CT_MaTK.TextLength == 0 && tb_CT_HoTen.TextLength == 0 && tb_CT_CMND.TextLength == 0)
                {
                    bt_CT_Tim.Enabled = false;
                }
            }
        }


// Mở tài khoản tiền gửi thanh toán

        //0712455
        private void tb_MoTKTGTT_HoTen_TextChanged(object sender, EventArgs e)
        {
            if (tb_MoTKTGTT_HoTen.TextLength > 0)
            {
                bt_MoTKTGTT_Mo.Enabled = true;
            }
        }
	
        // 0712455 begin

        private void menu_TK_Mo_TT_Click(object sender, EventArgs e)
        {
            cb_MTKTGTT_LoaiTienTe.DataSource = LoaiTienTeBUS.LayDanhSach();
            cb_MTKTGTT_LoaiTienTe.DisplayMember = "TenLoaiTienTe";
            cb_MTKTGTT_LoaiTienTe.SelectedIndex = -1;
            bt_MoTKTGTT_Mo.Enabled = false;
            pnl_MoTKTGTT.BringToFront();
        }
        //0712455
        private void ResetConTrolMoTKTGTToan()
        {
            tb_MoTKTGTT_HoTen.Text = "";
            tb_MoTKTGTT_CMND.Text = "";
            tb_MoTKTGTT_DiaChi.Text = "";
            tb_MoTKTGTT_NgayCap.Text = "";
            tb_MoTKTGTT_NoiCap.Text = "";
            tb_MoTKTKCKH_DienThoai.Text = "";
            cb_MTKTGTT_LoaiTienTe.SelectedIndex = -1;
        }
        //0712455
        private void bt_MoTKTGTT_Xoa_Click(object sender, EventArgs e)
        {
            ResetConTrolMoTKTGTToan();
        }

        //0712455
        private string KiemTraHopLeDuLieuNhapPanelMoTaiKhoanTGTT()
        {
            string chuoi_loi = "";
            if (tb_MoTKTGTT_HoTen.TextLength == 0)
            {
                chuoi_loi += "Lỗi : Không có họ tên chủ tài khoản\n";
            }
            if (CMNDHopLe(tb_MoTKTGTT_CMND.Text.Trim()) == false)
            {
                chuoi_loi += "Lỗi: CMND phải có từ 9 đến 12 chữ số\n";
            }
            DateTime ngay;
            if (DateTime.TryParse(tb_MoTKTGTT_NgayCap.Text.Trim(), out ngay) == false)
            {
                chuoi_loi += "Lỗi : Ngày cấp CMND dạng mm/dd/yyyy\n";
            }
            if (cb_MTKTGTT_LoaiTienTe.SelectedIndex == -1)
            {
                chuoi_loi += "phải chọn loại tiền tệ sử dụng của tài khoản\n";
            }
            if (tb_MoTKTKCKH_DiaChi.TextLength == 0 || tb_MoTKTGTT_NoiCap.TextLength == 0)
            {
                chuoi_loi += "Phải cung cấp đầy đủ thông tin về nơi cấp CMND và địa chỉ";
            }
            return chuoi_loi;
        }
        //0712455
        private void MoTaiKhoanTGTT()
        {
            string chuoi_loi = KiemTraHopLeDuLieuNhapPanelMoTaiKhoanTGTT();
            if (chuoi_loi == "")
            {
                KhachHangDTO khDto = new KhachHangDTO();

                khDto.HoTen = tb_MoTKTGTT_HoTen.Text.Trim();
                khDto.CMND = tb_MoTKTGTT_CMND.Text.Trim();
                khDto.NgayCapCMND = Convert.ToDateTime(tb_MoTKTGTT_NgayCap.Text);
                khDto.NoiCapCMND = tb_MoTKTGTT_NoiCap.Text.Trim();
                khDto.DiaChi = tb_MoTKTKCKH_DiaChi.Text.Trim();
                khDto.SoDT = tb_MoTKTGTT_DienThoai.Text.Trim();

                LoaiTienTeDTO loaiTTDto = new LoaiTienTeDTO();
                loaiTTDto = (LoaiTienTeDTO)cb_MTKTGTT_LoaiTienTe.SelectedItem;

                try
                {
                    MoTKTienGuiThanhToanBUS.Them(khDto, loaiTTDto, recentUser);
                    MessageBox.Show("Đã mở tài khoản thành công");
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.Message);
                }
            }
            else
            {
                MessageBox.Show(chuoi_loi);
            }
        }


        //0712455
        private void bt_MoTKTGTT_Mo_Click(object sender, EventArgs e)
        {
            MoTaiKhoanTGTT();
            ResetConTrolMoTKTGTToan();
        }

        // end 0712455

// Rút tiền từ tài khoản

        //0712452
        private double  RutTienTuTaiKhoan(string Ma_tai_khoan)
        {
            double Lephi = 0.0;
            GiaoDichDTO gdDto = new GiaoDichDTO();
            PhieuRutTienTuTKDTO rutTienTuTKDto = new PhieuRutTienTuTKDTO();
            gdDto.MaTK = Ma_tai_khoan;
            rutTienTuTKDto.SoTien = Convert.ToDouble(tb_so_tien_rut.Text.Trim());
            try
            {
                RutTienBUS.ThemGiaoDich(gdDto, rutTienTuTKDto, recentUser, ref Lephi );
                return Lephi;
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
                return Lephi ;
            }
        }
        private string KiemTraDuLieuNhapPanelRutTien()
        {
            string ChuoiLoi = "";
            string MaTaiKoanRut = tb_MaTK_rut.Text;
            string HoTenChuTK = tb_HoTen_rut.Text;
            string CMNDNguoiRut = tb_CMND_rut.Text;
            if (MaTaiKoanRut == "" && HoTenChuTK == "" && CMNDNguoiRut == "")
            {
                ChuoiLoi += "Phải nhập mã tài khoản hoặc thông tin chủ khoản\n";
            }
            if (MaTaiKoanRut != "")
            {
                if ( MaTKHopLe(MaTaiKoanRut ) == false)
                {
                    ChuoiLoi += "Mã Tài khoản phải có 13 chữ số\n";
                }
            }
            if (CMNDNguoiRut != "" && CMNDHopLe (CMNDNguoiRut ) == false)
            {
                ChuoiLoi += "CMND phải có từ 9 tới 12 chữ số\n";
            }
            double SoTien;
            if (double.TryParse (tb_so_tien_rut.Text, out SoTien) == false)
            {
                ChuoiLoi += "Số tiền phải là số thực\n";
            }
            return ChuoiLoi ;
        }

        private void button_xoa_rut_Click(object sender, EventArgs e)
        {
            tb_MaTK_rut.Text  = "";
            tb_HoTen_rut.Text  = "";
            tb_CMND_rut.Text  = "";
            tb_so_tien_rut.Text  = "";
            tb_le_phi_rut.Text  = "";
            button_Tim_rut.Enabled = true;
            tb_CMND_rut.Enabled = true;
            tb_HoTen_rut.Enabled = true;
        }
        private void tb_MaTK_rut_TextChanged(object sender, EventArgs e)
        {
            button_Tim_rut.Enabled = false;
            tb_CMND_rut.Enabled = false;
            tb_HoTen_rut.Enabled = false;
        }

        private void tb_HoTen_rut_TextChanged(object sender, EventArgs e)
        {
            button_Tim_rut.Enabled = true;
        }

        private void tb_CMND_rut_TextChanged(object sender, EventArgs e)
        {
            button_Tim_rut.Enabled = true;
        }
        private void button_Tim_rut_Click(object sender, EventArgs e)
        {
            string ChuoiLoi = KiemTraDuLieuNhapPanelRutTien();
            if (ChuoiLoi != "")
            {
                MessageBox.Show(ChuoiLoi);
                return;
            }

            try
            {
                List<TaiKhoanDTO> lstTaiKhoan = new List<TaiKhoanDTO>();
                KhachHangDTO khDto = new KhachHangDTO();
                if (tb_HoTen_rut.TextLength > 0)
                {  
                    khDto.HoTen = tb_HoTen_rut.Text.Trim();
                }
                if (tb_CMND_rut.TextLength > 0)
                 {
                    khDto.CMND = tb_CMND_rut.Text.Trim();
                 }
                 List<KhachHangDTO> lstKH = KhachHangBUS.TimKhachHang(khDto);
                 lstTaiKhoan = TaiKhoanBUS.TimDSTaiKhoan(lstKH);
                 data_bang_rut.DataSource = lstTaiKhoan;
                 data_bang_rut.Columns["MaTK"].Visible = true;
                 data_bang_rut.Columns["MaLoaiTK"].Visible = false;
                 data_bang_rut.Columns["MaKH"].Visible = false;
                 data_bang_rut.Columns["NgayBatDau"].Visible = true;
                 data_bang_rut.Columns["NgayKetThuc"].Visible = true;
                 data_bang_rut.Columns["SoDuCo"].Visible = false;
                 data_bang_rut.Columns["SoDuNo"].Visible = false;
                 data_bang_rut.Columns["SoDu"].Visible = true;
                 data_bang_rut.Columns["TinhTrang"].Visible = true;
                 data_bang_rut.Columns["LoaiTienTe"].Visible = true;
                 data_bang_rut.Columns["MaChiNhanh"].Visible = false;

            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }

        }

        private void button_Rut_Click(object sender, EventArgs e)
        {
            double LePhi;
            string ChuoiLoi = KiemTraDuLieuNhapPanelRutTien();
            if (ChuoiLoi == "")
            {
                string Ma_Tai_khoan;
                if (tb_MaTK_rut.TextLength > 0)
                {
                    Ma_Tai_khoan = tb_MaTK_rut.Text.Trim();
                }
                else
                {
                    DataGridViewRow DongduocChon = data_bang_rut.CurrentRow;
                    Ma_Tai_khoan = DongduocChon.Cells["MaTK"].Value.ToString();
                }
                LePhi = RutTienTuTaiKhoan(Ma_Tai_khoan);
                tb_le_phi_rut.Text = LePhi.ToString();
                MessageBox.Show("Đã Rút thành công.");
                data_bang_rut.DataSource = null;
            }
            else
            {
                MessageBox.Show(ChuoiLoi);
            }
        }

 // Nạp tiền vào tài khoản
        //0712452
        private string KiemTraDuLieuPanelNapTien()
        {
            PhieuNapTienDTO napTienDto = new PhieuNapTienDTO();
            string ChuoiLoi = "";
            string Ma_tai_khoan = tb_MaTK_nap.Text.Trim();
            string HoTenChuKhoan = tb_hoTenChuKhoan_nap.Text;
            napTienDto.HoTenNguoiGui  = tb_HoTenNgGui_nap.Text;
            napTienDto.DiaChiNguoiGui  = tb_DiaChiNggui_nap.Text;
            double SoTien;
            if (Ma_tai_khoan == "")
            {
                ChuoiLoi += " Phải nhập Mã Tài khoản \n";
            }
            if (Ma_tai_khoan != "" && MaTKHopLe(Ma_tai_khoan) == false)
            {
                ChuoiLoi += " Mã Tài khoản phải có 13 chữ số \n";
            }
            if (HoTenChuKhoan == "")
            {
                ChuoiLoi += " Phải nhập họ tên chủ khoản \n";
            }
            if (napTienDto.HoTenNguoiGui == "")
            {
                ChuoiLoi += " Phải nhập họ tên người gửi\n ";
            }
            if (napTienDto.DiaChiNguoiGui == "")
            {
                ChuoiLoi += " Phải nhập địa chỉ ngưởi gửi \n";
            }
            if (double.TryParse(tb_soTien_nap.Text, out SoTien) == false)
            {
                ChuoiLoi += "Số tiền phải là số thực\n";
            }
            return ChuoiLoi;
        }
        private double NapTienVoTaiKhoan()
        {
                double Lephi = 0.0;
                PhieuNapTienDTO napTienDto = new PhieuNapTienDTO();
                GiaoDichDTO gdDto = new GiaoDichDTO();
                KhachHangDTO khachHangDto = new KhachHangDTO();
                gdDto.MaTK = tb_MaTK_nap.Text.Trim();
                khachHangDto.HoTen = tb_hoTenChuKhoan_nap.Text;
                napTienDto.HoTenNguoiGui = tb_HoTenNgGui_nap.Text;
                napTienDto.DiaChiNguoiGui = tb_DiaChiNggui_nap.Text;
                napTienDto.SoTien = Convert.ToDouble(tb_soTien_nap.Text.Trim());
                try
                {
                    NapTienBUS.ThemGiaoDich(gdDto, napTienDto, khachHangDto, recentUser,ref Lephi);
                    MessageBox.Show("Đã nạp tiền thành công ");
                    return Lephi;
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.Message);
                    return Lephi ;
                }
        }

        private void button_nap_tien_Click(object sender, EventArgs e)
        {
            string ChuoiLoi = KiemTraDuLieuPanelNapTien();
            if (ChuoiLoi == "")
            {
                double LePhi;
                LePhi = NapTienVoTaiKhoan();
                tb_LePhi_nap.Text = LePhi.ToString();
            }
            else
            {
                MessageBox.Show(ChuoiLoi);
            }
        }

        private void bt_TroLai_nap_Click(object sender, EventArgs e)
        {
            tb_LePhi_nap.Text = "";
            tb_HoTenNgGui_nap.Text = "";
            tb_DiaChiNggui_nap.Text = "";
            tb_MaTK_nap.Text = "";
            tb_hoTenChuKhoan_nap.Text = "";
            tb_soTien_nap.Text = "";

        }

// Mở tài khoản tiết kiệm không kì hạn

        //0712455
        private void ResetControlMoTKTKKhongKH()
        {
            tb_MoTKTKKKH_HoTen.Text = "";
            tb_MoTKTKKKH_CMND.Text = "";
            tb_MoTKTKKKH_NgayCap.Text = "";
            tb_MoTKTKKKH_NoiCap.Text = "";
            tb_MoTKTKKKH_DiaChi.Text = "";
            tb_MoTKTKKKH_DienThoai.Text = "";
            cb_MTKTKKKH_LoaiTienTe.SelectedIndex = -1;
        }
        private void bt_MoTKTKKKH_Xoa_Click(object sender, EventArgs e)
        {
            ResetControlMoTKTKKhongKH();
        }
        //0712455
        private string KiemTraHopLeDuLieuNhapPanelMoTKTKKhongKiHan()
        {
            string chuoi_loi = "";
            if (tb_MoTKTKKKH_HoTen.TextLength == 0)
            {
                chuoi_loi += "Lỗi : Không có họ tên chủ tài khoản\n";
            }
            if (CMNDHopLe(tb_MoTKTKKKH_CMND.Text.Trim()) == false)
            {
                chuoi_loi += "Lỗi: CMND phải có từ 9 đến 12 chữ số\n";
            }
            DateTime ngay;
            if (DateTime.TryParse(tb_MoTKTKKKH_NgayCap.Text.Trim(), out ngay) == false)
            {
                chuoi_loi += "Lỗi : Ngày cấp CMND dạng mm/dd/yyyy\n";
            }
            if (cb_MTKTKKKH_LoaiTienTe.SelectedIndex == -1)
            {
                chuoi_loi += "phải chọn loại tiền tệ sử dụng của tài khoản\n";
            }
            if (tb_MoTKTKKKH_DiaChi.TextLength == 0 || tb_MoTKTKKKH_NoiCap.TextLength == 0)
            {
                chuoi_loi += "Phải cung cấp đầy đủ thông tin về nơi cấp CMND và địa chỉ";
            }
            return chuoi_loi;
        }
        //0712455
        private void MoTaiKhoanTKKhongKiHan()
        {
            string chuoi_loi = KiemTraHopLeDuLieuNhapPanelMoTKTKKhongKiHan();
            if (chuoi_loi == "")
            {
                KhachHangDTO khDto = new KhachHangDTO();

                khDto.HoTen = tb_MoTKTKKKH_HoTen.Text.Trim();
                khDto.CMND = tb_MoTKTKKKH_CMND.Text.Trim();
                khDto.NgayCapCMND = Convert.ToDateTime(tb_MoTKTKKKH_NgayCap.Text.Trim());
                khDto.NoiCapCMND = tb_MoTKTKKKH_NoiCap.Text.Trim();
                khDto.DiaChi = tb_MoTKTKKKH_DiaChi.Text.Trim();
                khDto.SoDT = tb_MoTKTKKKH_DienThoai.Text.Trim();

                LoaiTienTeDTO loaiTTDto = new LoaiTienTeDTO();
                loaiTTDto = (LoaiTienTeDTO)cb_MTKTKKKH_LoaiTienTe.SelectedItem;

                try
                {
                    MoTKTKKhongKiHanBUS.Them(khDto, loaiTTDto, recentUser);
                    MessageBox.Show("Đã mở tài khoản thành công");
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.Message);
                }
            }
            else
            {
                MessageBox.Show(chuoi_loi);
            }
        }
        //0712455
        private void bt_MoTKTKKKH_Mo_Click(object sender, EventArgs e)
        {
            MoTaiKhoanTKKhongKiHan();
            ResetControlMoTKTKKhongKH();
        }

 // Mở tài khoản tiết kiệm có kì hạn

        //0712455
        private void ResetControlMoTKTKCoKH()
        {
            tb_MoTKTKCKH_HoTen.Text = "";
            tb_MoTKTKCKH_CMND.Text = "";
            tb_MoTKTKCKH_NgayCap.Text = "";
            tb_MoTKTKCKH_NoiCap.Text = "";
            tb_MoTKTKCKH_DiaChi.Text = "";
            tb_MoTKTKCKH_DienThoai.Text = "";
            cb_MTKTKCKH_LoaiTienTe.SelectedIndex = -1;
        }
        private void bt_MoTKTKCKH_Xoa_Click(object sender, EventArgs e)
        {
            ResetControlMoTKTKCoKH();
        }

        //0712455
        private string KiemTraHopLeDuLieuNhapPanelMoTKTKCoKiHan()
        {
            string chuoi_loi = "";
            if (tb_MoTKTKCKH_HoTen.TextLength == 0)
            {
                chuoi_loi += "Lỗi : Không có họ tên chủ tài khoản\n";
            }
            if (CMNDHopLe(tb_MoTKTKCKH_CMND.Text.Trim()) == false)
            {
                chuoi_loi += "Lỗi: CMND phải có từ 9 đến 12 chữ số\n";
            }
            DateTime ngay;
            if (DateTime.TryParse(tb_MoTKTKCKH_NgayCap.Text.Trim(), out ngay) == false)
            {
                chuoi_loi += "Lỗi : Ngày cấp CMND dạng mm/dd/yyyy\n";
            }
            if (cb_MTKTKCKH_LoaiTienTe.SelectedIndex == -1)
            {
                chuoi_loi += "phải chọn loại tiền tệ sử dụng của tài khoản\n";
            }
            if (tb_MoTKTKCKH_DiaChi.TextLength == 0 || tb_MoTKTKCKH_NoiCap.TextLength == 0)
            {
                chuoi_loi += "Phải cung cấp đầy đủ thông tin về nơi cấp CMND và địa chỉ";
            }
            return chuoi_loi;
        }
        //0712455
        private void MoTaiKhoanTKCoKiHan()
        {
            string chuoi_loi = KiemTraHopLeDuLieuNhapPanelMoTKTKCoKiHan();
            if (chuoi_loi == "")
            {
                KhachHangDTO khDto = new KhachHangDTO();

                khDto.HoTen = tb_MoTKTKCKH_HoTen.Text.Trim();
                khDto.CMND = tb_MoTKTKCKH_CMND.Text.Trim();
                khDto.NgayCapCMND = Convert.ToDateTime(tb_MoTKTKCKH_NgayCap.Text.Trim());
                khDto.NoiCapCMND = tb_MoTKTKCKH_NoiCap.Text.Trim();
                khDto.DiaChi = tb_MoTKTKCKH_DiaChi.Text.Trim();
                khDto.SoDT = tb_MoTKTKCKH_DienThoai.Text.Trim();

                LoaiTienTeDTO loaiTTDto = new LoaiTienTeDTO();
                loaiTTDto = (LoaiTienTeDTO)cb_MTKTKCKH_LoaiTienTe.SelectedItem;

                int kihan = (int)cb_MoTKTKCKH_KiHan.SelectedItem;

                try
                {
                    MoTKTKCoKiHanBUS.Them(khDto, loaiTTDto, recentUser, kihan);
                    MessageBox.Show("Đã mở tài khoản thành công");
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.Message);
                }
            }
            else
            {
                MessageBox.Show(chuoi_loi);
            }
        }
        //0712455
        private void bt_MoTKTKCKH_Mo_Click(object sender, EventArgs e)
        {
            MoTaiKhoanTKCoKiHan();
            ResetControlMoTKTKCoKH();
        }

// Tìm kiếm tài khoản
        //0712455
        private void bt_TKTK_Xoa_Click(object sender, EventArgs e)
        {
            tb_TKTK_MaTK.Text = "";
            tb_TKTK_HoTen.Text = "";
            tb_TKTK_CMND.Text = "";
        }
        //0712455
        private void tb_TKTK_MaTK_TextChanged(object sender, EventArgs e)
        {
            if (tb_TKTK_MaTK.TextLength > 0)
            {
                tb_TKTK_HoTen.Enabled = false;
                tb_TKTK_CMND.Enabled = false;
                bt_TKTK_Tim.Enabled = true;
            }
            else
            {
                tb_TKTK_HoTen.Enabled = true;
                tb_TKTK_CMND.Enabled = true;
            }
        }
        //0712455
        private void tb_TKTK_HoTen_TextChanged(object sender, EventArgs e)
        {
            if (tb_TKTK_HoTen.TextLength > 0)
            {
                tb_TKTK_MaTK.Enabled = false;
                bt_TKTK_Tim.Enabled = true;
            }
            else if (tb_TKTK_CMND.TextLength == 0)
            {
                bt_TKTK_Tim.Enabled = false;
            }
        }
        //0712455
        private void tb_TKTK_CMND_TextChanged(object sender, EventArgs e)
        {
            if (tb_TKTK_CMND.TextLength > 0)
            {
                tb_TKTK_MaTK.Enabled = false;
                bt_TKTK_Tim.Enabled = true;
            }
            else if (tb_TKTK_HoTen.TextLength == 0)
            {
                bt_TKTK_Tim.Enabled = false;
            }
        }
        //0712455

        private string kiemTraHopLeTimKiemTaiKhoan()
        {
            string chuoi_loi = "";
            if (tb_TKTK_MaTK.TextLength == 0)
            {
                if (tb_TKTK_CMND.TextLength == 0)
                {
                    if (tb_TKTK_HoTen.TextLength == 0)
                    {
                        chuoi_loi += "phải nhập vào ít nhất một thông tin tìm kiếm \n";
                    }
                }
                else
                {
                    if (CMNDHopLe(tb_TKTK_CMND.Text.Trim()) == false)
                    {
                        chuoi_loi += "Lỗi: CMND phải có từ 9 đến 12 chữ số\n";
                    }
                }
            }
            else
            {
                if (MaTKHopLe(tb_TKTK_MaTK.Text.Trim()) == false)
                {
                    chuoi_loi += "Mã số tài khoản phải có 13 chữ số\n";
                }
            }
            return chuoi_loi;
        }

        //0712455
        private void bt_TKTK_Tim_Click(object sender, EventArgs e)
        {
            dtgv_TKTK_DanhSach.Enabled = true;
            string kt = kiemTraHopLeTimKiemTaiKhoan();
            if (kt != "")
            {
                MessageBox.Show(kt);
                return;
            }

            try
            {
                List<TaiKhoanDTO> lstTaiKhoan = new List<TaiKhoanDTO>();
                if (tb_TKTK_MaTK.TextLength != 0)
                {
                    TaiKhoanDTO taiKhoanDto = new TaiKhoanDTO();
                    taiKhoanDto = TaiKhoanBUS.TimTaiKhoan(tb_TKTK_MaTK.Text.Trim());
                    lstTaiKhoan.Add(taiKhoanDto);
                }
                else
                {
                    KhachHangDTO khDto = new KhachHangDTO();
                    if (tb_TKTK_HoTen.TextLength != 0)
                    {
                        khDto.HoTen = tb_TKTK_HoTen.Text.Trim();
                    }
                    if (tb_TKTK_CMND.TextLength != 0)
                    {
                        khDto.CMND = tb_TKTK_CMND.Text.Trim();
                    }
                    List<KhachHangDTO> lstKH = KhachHangBUS.TimKhachHang(khDto);
                    lstTaiKhoan = TaiKhoanBUS.TimDSTaiKhoan(lstKH);                }

                dtgv_TKTK_DanhSach.DataSource = lstTaiKhoan;

                dtgv_TKTK_DanhSach.Columns["MaTK"].Visible = true;
                dtgv_TKTK_DanhSach.Columns["MaLoaiTK"].Visible = false;
                dtgv_TKTK_DanhSach.Columns["MaKH"].Visible = false;
                dtgv_TKTK_DanhSach.Columns["NgayBatDau"].Visible = true;
                dtgv_TKTK_DanhSach.Columns["NgayKetThuc"].Visible = true;
                dtgv_TKTK_DanhSach.Columns["SoDuCo"].Visible = false;
                dtgv_TKTK_DanhSach.Columns["SoDuNo"].Visible = false;
                dtgv_TKTK_DanhSach.Columns["SoDu"].Visible = true;
                dtgv_TKTK_DanhSach.Columns["TinhTrang"].Visible = true;
                dtgv_TKTK_DanhSach.Columns["LoaiTienTe"].Visible = true;
                dtgv_TKTK_DanhSach.Columns["MaChiNhanh"].Visible = false;
                dtgv_TKTK_DanhSach.AutoResizeColumns();
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }

// Tìm kiếm khách hàng
        //0712455

        private void bt_TKKH_Xoa_Click(object sender, EventArgs e)
        {
            tb_TKKH_HoTen.Text = "";
            tb_TKKH_CMND.Text = "";
            tb_TKKH_MaKH.Text = "";
        }

        //0712455
        private void tb_TKKH_MaKH_TextChanged(object sender, EventArgs e)
        {
            if (tb_TKKH_MaKH.TextLength > 0)
            {
                tb_TKKH_HoTen.Enabled = false;
                tb_TKKH_CMND.Enabled = false;
                bt_TKKH_Tim.Enabled = true;
            }
            else
            {
                tb_TKKH_HoTen.Enabled = true;
                tb_TKKH_CMND.Enabled = true;
            }
        }
        //0712455
        private void tb_TKKH_HoTen_TextChanged(object sender, EventArgs e)
        {
            if (tb_TKKH_HoTen.TextLength > 0)
            {
                tb_TKKH_MaKH.Enabled = false;
                bt_TKKH_Tim.Enabled = true;
            }
            else if (tb_TKKH_CMND.TextLength == 0)
            {
                bt_TKKH_Tim.Enabled = false;
            }
        }
        //0712455

        private void tb_TKKH_CMND_TextChanged(object sender, EventArgs e)
        {
            if (tb_TKKH_CMND.TextLength > 0)
            {
                tb_TKKH_MaKH.Enabled = false;
                bt_TKKH_Tim.Enabled = true;
            }
            else if (tb_TKKH_HoTen.TextLength == 0)
            {
                bt_TKKH_Tim.Enabled = false;
            }
        }

        //0712455

        private string kiemTraHopLeTimKiemKhachHang()
        {
            string chuoi_loi = "";
            if (tb_TKKH_MaKH.TextLength == 0)
            {
                if (tb_TKKH_CMND.TextLength == 0)
                {
                    if (tb_TKKH_HoTen.TextLength == 0)
                    {
                        chuoi_loi += "phải nhập vào ít nhất một thông tin tìm kiếm \n";
                    }
                }
                else
                {
                    if (CMNDHopLe(tb_TKKH_CMND.Text.Trim()) == false)
                    {
                        chuoi_loi += "Lỗi: CMND phải có từ 9 đến 12 chữ số\n";
                    }
                }
            }
            else
            {
                int maKH;
                if (Int32.TryParse(tb_TKKH_MaKH.Text.Trim(), out maKH) == false)
                {
                    chuoi_loi += "Mã khách hàng phải là số nguyên\n";
                }
            }
            return chuoi_loi;
        }

        //0712455
        private void bt_TKKH_Tim_Click(object sender, EventArgs e)
        {
            dtgv_TKKH_DanhSach.Enabled = true;
            string kt = kiemTraHopLeTimKiemKhachHang();
            if (kt != "")
            {
                MessageBox.Show(kt);
                return;
            }

            try
            {
                List<KhachHangDTO> lstKhachHang = new List<KhachHangDTO>();
                if (tb_TKKH_MaKH.TextLength > 0)
                {
                    KhachHangDTO khDto = new KhachHangDTO();
                    int maKH = Int32.Parse(tb_TKKH_MaKH.Text.Trim());
                    khDto = KhachHangBUS.LayKhachHang(maKH);
                    lstKhachHang.Add(khDto);
                }
                else
                {
                    KhachHangDTO khDto = new KhachHangDTO();
                    if (tb_TKTK_HoTen.TextLength > 0)
                    {
                        khDto.HoTen = tb_TKKH_HoTen.Text.Trim();
                    }
                    if (tb_TKTK_CMND.TextLength > 0)
                    {
                        khDto.CMND = tb_TKKH_CMND.Text.Trim();
                    }
                    lstKhachHang = KhachHangBUS.TimKhachHang(khDto);
                }

                dtgv_TKKH_DanhSach.DataSource = lstKhachHang;

                dtgv_TKKH_DanhSach.Columns["MaKH"].Visible = true;
                dtgv_TKKH_DanhSach.Columns["HoTen"].Visible = true;
                dtgv_TKKH_DanhSach.Columns["CMND"].Visible = true;
                dtgv_TKKH_DanhSach.Columns["DiaChi"].Visible = true;
                dtgv_TKKH_DanhSach.Columns["NgayCapCMND"].Visible = false;
                dtgv_TKKH_DanhSach.Columns["NoiCapCMND"].Visible = false;
                dtgv_TKKH_DanhSach.Columns["SoDT"].Visible = false;
                dtgv_TKKH_DanhSach.AutoResizeColumns();
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }
    }
}

